Scoring documents in a database

ABSTRACT

A method may include identifying a linked document that is linked to by a group of linking documents; identifying links between the linking documents and the linked document; assigning a weight to each of the identified links; and determining a score for the linked document based on the identified links between the linking documents and the linked document, and the weights assigned to each of the identified links.

CROSS-REFERENCES TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 11/835,316, filed Aug. 7, 2007, now abandoned, which is a continuation of U.S. patent application Ser. No. 11/000,375, filed Dec. 1, 2004, now U.S. Pat. No. 7,269,587, which is a continuation of U.S. patent application Ser. No. 09/895,174, filed Jul. 2, 2001, now U.S. Pat. No. 7,058,628, which is a continuation of U.S. patent application Ser. No. 09/004,827, filed Jan. 9, 1998, now U.S. Pat. No. 6,285,999, which claims priority from U.S. provisional patent application No. 60/035,205 filed Jan. 10, 1997, which are all incorporated herein by reference.

STATEMENT REGARDING GOVERNMENT SUPPORT

This invention was supported in part by the National Science Foundation grant number IRI-9411306-4. The Government has certain rights in the invention.

FIELD OF THE INVENTION

This invention relates generally to techniques for analyzing linked databases. More particularly, it relates to methods for assigning ranks to nodes in a linked database, such as any database of documents containing citations, the world wide web or any other hypermedia database.

BACKGROUND OF THE INVENTION

Due to the developments in computer technology and its increase in popularity, large numbers of people have recently started to frequently search huge databases. For example, internet search engines are frequently used to search the entire world wide web. Currently, a popular search engine might execute over 30 million searches per day of the indexable part of the web, which has a size in excess of 500 Gigabytes. Information retrieval systems are traditionally judged by their precision and recall. What is often neglected, however, is the quality of the results produced by these search engines. Large databases of documents such as the web contain many low quality documents. As a result, searches typically return hundreds of irrelevant or unwanted documents which camouflage the few relevant ones. In order to improve the selectivity of the results, common techniques allow the user to constrain the scope of the search to a specified subset of the database, or to provide additional search terms. These techniques are most effective in cases where the database is homogeneous and already classified into subsets, or in cases where the user is searching for well known and specific information. In other cases, however, these techniques are often not effective because each constraint introduced by the user increases the chances that the desired information will be inadvertently eliminated from the search results.

Search engines presently use various techniques that attempt to present more relevant documents. Typically, documents are ranked according to variations of a standard vector space model. These variations could include (a) how recently the document was updated, and/or (b) how close the search terms are to the beginning of the document. Although this strategy provides search results that are better than with no ranking at all, the results still have relatively low quality. Moreover, when searching the highly competitive web, this measure of relevancy is vulnerable to “spamming” techniques that authors can use to artificially inflate their document's relevance in order to draw attention to it or its advertisements. For this reason search results often contain commercial appeals that should not be considered a match to the query. Although search engines are designed to avoid such ruses, poorly conceived mechanisms can result in disappointing failures to retrieve desired information.

Hyperlink Search Engine, developed by IDD Information Services, (http://rankdex.gari.com/) uses backlink information (i.e., information from pages that contain links to the current page) to assist in identifying relevant web documents. Rather than using the content of a document to determine relevance, the technique uses the anchor text of links to the document to characterize the relevance of a document. The idea of associating anchor text with the page the text points to was first implemented in the World Wide Web Worm (Oliver A. McBryan, GENVL and WWWW: Tools for Taming the Web, First International Conference on the World Wide Web, CERN, Geneva, May 25-27, 1994). The Hyperlink Search Engine has applied this idea to assist in determining document relevance in a search. In particular, search query terms are compared to a collection of anchor text descriptions that point to the page, rather than to a keyword index of the page content. A rank is then assigned to a document based on the degree to which the search terms match the anchor descriptions in its backlink documents.

The well known idea of citation counting is a simple method for determining the importance of a document by counting its number of citations, or backlinks. The citation rank r(A) of a document which has n backlink pages is simply r(A)=n.

In the case of databases whose content is of relatively uniform quality and importance it is valid to assume that a highly cited document should be of greater interest than a document with only one or two citations. Many databases, however, have extreme variations in the quality and importance of documents. In these cases, citation ranking is overly simplistic. For example, citation ranking will give the same rank to a document that is cited once on an obscure page as to a similar document that is cited once on a well-known and highly respected page.

SUMMARY

Various aspects of the present invention provide systems and methods for ranking documents in a linked database. One aspect provides an objective ranking based on the relationship between documents. Another aspect of the invention is directed to a technique for ranking documents within a database whose content has a large variation in quality and importance. Another aspect of the present invention is to provide a document ranking method that is scalable and can be applied to extremely large databases such as the world wide web. Additional aspects of the invention will become apparent in view of the following description and associated figures.

The present invention achieves the above objects by taking advantage of the linked structure of a database to assign a rank to each document in the database, where the document rank is a measure of the importance of a document. Rather than determining relevance from the intrinsic content of a document, or from the anchor text of backlinks to the document, the present method determines importance from the extrinsic relationships between documents. Intuitively, a document should be important (regardless of its content) if it is highly cited by other documents. Not all citations, however, are of equal significance. A citation from an important document is more important than a citation from a relatively unimportant document. Thus, the importance of a page, and hence the rank assigned to it, should depend not just on the number of citations it has, but on the importance of the citing documents as well. This implies a recursive definition of rank: the rank of a document is a function of the ranks of the documents which cite it. The ranks of documents may be calculated by an iterative procedure on a linked database.

Because citations, or links, are ways of directing attention, the important documents correspond to those documents to which the most attention is directed. Thus, a high rank indicates that a document is considered valuable by many people or by important people. Most likely, these are the pages to which someone performing a search would like to direct his or her attention. Looked at another way, the importance of a page is directly related to the steady-state probability that a random web surfer ends up at the page after following a large number of links. Because there is a larger probability that a surfer will end up at an important page than at an unimportant page, this method of ranking pages assigns higher ranks to the more important pages.

In one aspect of the invention, a computer implemented method is provided for calculating an importance rank for N linked nodes of a linked database. The method comprises the steps of:

-   -   (a) selecting an initial N-dimensional vector p₀;     -   (b) computing an approximation p_(n) to a steady-state         probability p_(∞) in accordance with the equation p_(n)=A^(n)p₀,         where A is an N×N transition probability matrix having elements         A[i][j] representing a probability of moving from node i to node         j; and     -   (c) determining a rank r[k] for a node k from a k^(th) component         of p_(n).

In a preferred embodiment, the matrix A is chosen so that an importance rank of a node is calculated, in part, from a weighted sum of importance ranks of backlink nodes of the node, where each of the backlink nodes is weighted in dependence upon the total number of links in the backlink node. In addition, the importance rank of a node is calculated, in part, from a constant α representing the probability that a surfer will randomly jump to the node. The importance rank of a node can also be calculated, in part, from a measure of distances between the node and backlink nodes of the node. The initial N-dimensional vector p₀ may be selected to represent a uniform probability distribution, or a non-uniform probability distribution which gives weight to a predetermined set of nodes.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram of the relationship between three linked hypertext documents according to the invention.

FIG. 2 is a diagram of a three-document web illustrating the rank associated with each document in accordance with the present invention.

FIG. 3 is a flowchart of one implementation of the invention.

DETAILED DESCRIPTION

Although the following detailed description contains many specifics for the purposes of illustration, anyone of ordinary skill in the art will appreciate that many variations and alterations to the following details are within the scope of the invention. Accordingly, the following embodiments of the invention are set forth without any loss of generality to, and without imposing limitations upon, the claimed invention. For support in reducing the present invention to practice, the inventor acknowledges Sergey Brin, Scott Hassan, Rajeev Motwani, Alan Steremberg, and Terry Winograd.

A linked database (i.e. any database of documents containing mutual citations, such as the world wide web or other hypermedia archive, a dictionary or thesaurus, and a database of academic articles, patents, or court cases) can be represented as a directed graph of N nodes, where each node corresponds to a web page document and where the directed connections between nodes correspond to links from one document to another. A given node has a set of forward links that connect it to children nodes, and a set of backward links that connect it to parent nodes. FIG. 1 shows a typical relationship between three hypertext documents A, B, and C. As shown in this particular figure, the first links in documents B and C are pointers to document A. In this case we say that B and C are backlinks of A, and that A is a forward link of B and of C. Documents B and C also have other forward links to documents that are not shown.

Although the ranking method of the present invention is superficially similar to the well known idea of citation counting, the present method is more subtle and complex than citation counting and gives far superior results. In a simple citation ranking, the rank of a document A which has n backlink pages is simply r(A)=n.

According to one embodiment of the present method of ranking, the backlinks from different pages are weighted differently and the number of links on each page is normalized. More precisely, the rank of a page A is defined according to the present invention as

${{r(A)} = {\frac{\alpha}{N} + {\left( {1 - \alpha} \right)\left( {\frac{r\left( B_{1} \right)}{B_{1}} + \ldots + \frac{r\left( B_{n} \right)}{B_{n}}} \right)}}},$ where B₁, . . . , B_(n) are the backlink pages of A, r(B₁), . . . , r(B_(n)) are their ranks, |B₁|, . . . , |B_(n)| are their numbers of forward links, and α is a constant in the interval [0,1], and N is the total number of pages in the web. This definition is clearly more complicated and subtle than the simple citation rank. Like the citation rank, this definition yields a page rank that increases as the number of backlinks increases. But the present method considers a citation from a highly ranked backlink as more important than a citation from a lowly ranked backlink (provided both citations come from backlink documents that have an equal number of forward links). In the present invention, it is possible, therefore, for a document with only one backlink (from a very highly ranked page) to have a higher rank than another document with many backlinks (from very low ranked pages). This is not the case with simple citation ranking.

The ranks form a probability distribution over web pages, so that the sum of ranks over all web pages is unity. The rank of a page can be interpreted as the probability that a surfer will be at the page after following a large number of forward links. The constant α in the formula is interpreted as the probability that the web surfer will jump randomly to any web page instead of following a forward link. The page ranks for all the pages can be calculated using a simple iterative algorithm, and corresponds to the principal eigenvector of the normalized link matrix of the web, as will be discussed in more detail below.

In order to illustrate the present method of ranking, consider the simple web of three documents shown in FIG. 2. For simplicity of illustration, we assume in this example that r=0. Document A has a single backlink to document C, and this is the only forward link of document C, so r(A)=r(C).

Document B has a single backlink to document A, but this is one of two forward links of document A, so r(B)=r(A)/2.

Document C has two backlinks. One backlink is to document B, and this is the only forward link of document B. The other backlink is to document A via the other of the two forward links from A.

Thus r(C)=r(B)+r(A)/2.

In this simple illustrative case we can see by inspection that r(A)=0.4, r(B)=0.2, and r(C)=0.4. Although a typical value for α is ˜0.1, if for simplicity we set α=0.5 (which corresponds to a 50% chance that a surfer will randomly jump to one of the three pages rather than following a forward link), then the mathematical relationships between the ranks become more complicated. In particular, we then have r(A)=1/6+r(C)/2, r(B)=1/6+r(A)/4, and r(C)=1/6+r(A)/4+r(B)/2. The solution in this case is r(A)=14/39, r(B)=10/39, and r(C)=15/39.

In practice, there are millions of documents and it is not possible to find the solution to a million equations by inspection. Accordingly, in the preferred embodiment a simple iterative procedure is used. As the initial state we may simply set all the ranks equal to 1/N. The formulas are then used to calculate a new set of ranks based on the existing ranks. In the case of millions of documents, sufficient convergence typically takes on the order of 100 iterations. It is not always necessary or even desirable, however, to calculate the rank of every page with high precision. Even approximate rank values, using two or more iterations, can provide very valuable, or even superior, information.

The iteration process can be understood as a steady-state probability distribution calculated from a model of a random surfer. This model is mathematically equivalent to the explanation described above, but provides a more direct and concise characterization of the procedure. The model includes (a) an initial N-dimensional probability distribution vector p₀ where each component p₀[i] gives the initial probability that a random surfer will start at a node i, and (b) an N×N transition probability matrix A where each component A[i][j] gives the probability that the surfer will move from node i to node j. The probability distribution-of the graph after the surfer follows one link is p₁=Ap₀, and after two links the probability distribution is p₂=Ap₁=A²p₀. Assuming this iteration converges, it will converge to a steady-state probability

$p_{\infty} = {\lim\limits_{n\rightarrow\infty}{A^{n}p_{0}}}$

which is a dominant eigenvector of A. The iteration circulates the probability through the linked nodes like energy flows through a circuit and accumulates in important places. Because pages with no links occur in significant numbers and bleed off energy, they cause some complication with computing the ranking. This complication is caused by the fact they can add huge amounts to the “random jump” factor. This, in turn, causes loops in the graph to be highly emphasized which is not generally a desirable property of the model. In order to address this problem, these childless pages can simply be removed from the model during the iterative stages, and added back in after the iteration is complete. After the childless pages are added back in, however, the same number of iterations that was required to remove them should be done to make sure they all receive a value. (Note that in order to ensure convergence, the norm of p_(i) must be made equal to 1 after each iteration.) An alternate method to control the contribution of the childless nodes is to only estimate the steady state by iterating a small number of times.

The rank r[i] of a node i can then be defined as a function of this steady-state probability distribution. For example, the rank can be defined simply by r[i]=p_(∞)[i]. This method of calculating rank is mathematically equivalent to the iterative method described first. Those skilled in the art will appreciate that this same method can be characterized in various different ways that are mathematically equivalent. Such characterizations are obviously within the scope of the present invention. Because the rank of various different documents can vary by orders of magnitude, it is convenient to define a logarithmic rank

${r\lbrack i\rbrack} = {\log\frac{p_{\infty}\lbrack i\rbrack}{\min\limits_{k \in {\lbrack{1,N}\rbrack}}\left\{ {p_{\infty}\lbrack k\rbrack} \right\}}}$ which assigns a rank of 0 to the lowest ranked node and increases by 1 for each order of magnitude in importance higher than the lowest ranked node.

FIG. 3 shows one embodiment of a computer implemented method for calculating an importance rank for N linked nodes of a linked database. At a step 101, an initial N-dimensional vector p₀ is selected. An approximation p_(n), to a steady-state probability p_(∞) in accordance with the equation p_(n)=A^(n)p₀ is computed at a step 103. Matrix A can be an N×N transition probability matrix having elements A[i][j] representing a probability of moving from node i to node j. At a step 105, a rank r[k] for node k from a k^(th) component of p_(n) is determined.

In one particular embodiment, a finite number of iterations are performed to approximate p_(∞). The initial distribution can be selected to be uniform or non-uniform. A uniform distribution would set each component of p₀ equal to 1/N. A non-uniform distribution, for example, can divide the initial probability among a few nodes which are known a priori to have relatively large importance. This non-uniform distribution decreases the number of iterations required to obtain a close approximation to p_(∞) and also is one way to reduce the effect of artificially inflating relevance by adding unrelated terms.

In another particular embodiment, the transition matrix A is given by

${A = {{\frac{\alpha}{N}11} + {\left( {1 - \alpha} \right)B}}},$ where 11 is an N×N matrix consisting of all 1s, α is the probability that a surfer will jump randomly to any one of the N nodes, and B is a matrix whose elements B[i][j] are given by

${{B\lbrack i\rbrack}\lbrack j\rbrack} = \left\{ {\begin{matrix} \frac{1}{n_{i}} & {{if}\mspace{14mu}{node}\mspace{14mu} i\mspace{14mu}{points}\mspace{14mu}{to}\mspace{14mu}{node}\mspace{14mu} j} \\ 0 & {otherwise} \end{matrix},} \right.$ where n_(i) is the total number of forward links from node i. The (1−α) factor acts as a damping factor that limits the extent to which a document's rank can be inherited by children documents. This models the fact that users typically jump to a different place in the web after following a few links. The value of α is typically around 15%. Including this damping is important when many iterations are used to calculate the rank so that there is no artificial concentration of rank importance within loops of the web. Alternatively, one may set α=0 and only iterate a few times in the calculation.

Consistent with the present invention, there are several ways that this method can be adapted or altered for various purposes. As already mentioned above, rather than including the random linking probability α equally among all nodes, it can be divided in various ways among all the sites by changing the 11 matrix to another matrix. For example, it could be distributed so that a random jump takes the surfer to one of a few nodes that have a high importance, and will not take the surfer to any of the other nodes. This can be very effective in preventing deceptively tagged documents from receiving artificially inflated relevance. Alternatively, the random linking probability could be distributed so that random jumps do not happen from high importance nodes, and only happen from other nodes. This distribution would model a surfer who is more likely to make random jumps from unimportant sites and follow forward links from important sites. A modification to avoid drawing unwarranted attention to pages with artificially inflated relevance is to ignore local links between documents and only consider links between separate domains. Because the links from other sites to the document are not directly under the control of a typical web site designer, it is then difficult for the designer to artificially inflate the ranking. A simpler approach is to weight links from pages contained on the same web server less than links from other servers. Also, in addition to servers, internet domains and any general measure of the distance between links could be used to determine such a weighting.

Additional modifications can further improve the performance of this method. Rank can be increased for documents whose backlinks are maintained by different institutions and authors in various geographic locations. Or it can be increased if links come from unusually important web locations such as the root page of a domain.

Links can also be weighted by their relative importance within a document. For example, highly visible links that are near the top of a document can be given more weight. Also, links that are in large fonts or emphasized in other ways can be given more weight. In this way, the model better approximates human usage and authors' intentions. In many cases it is appropriate to assign higher value to links coming from pages that have been modified recently since such information is less likely to be obsolete.

Various implementations of the invention have the advantage that the convergence is very fast (a few hours using current processors) and it is much less expensive than building a full-text index. This speed allows the ranking to be customized or personalized for specific users. For example, a user's home page and/or bookmarks can be given a large initial importance, and/or a high probability of a random jump returning to it. This high rating essentially indicates to the system that the person's homepage and/or bookmarks does indeed contain subjects of importance that should be highly ranked. This procedure essentially trains the system to recognize pages related to the person's interests.

The present method of determining the rank of a document can also be used to enhance the display of documents. In particular, each link in a document can be annotated with an icon, text, or other indicator of the rank of the document that each link points to. Anyone viewing the document can then easily see the relative importance of various links in the document.

The present method of ranking documents in a database can also be useful for estimating the amount of attention any document receives on the web since it models human behavior when surfing the web. Estimating the importance of each backlink to a page can be useful for many purposes including site design, business arrangements with the backlinkers, and marketing. The effect of potential changes to the hypertext structure can be evaluated by adding them to the link structure and recomputing the ranking.

Real usage data, when available, can be used as a starting point for the model and as the distribution for the alpha factor. This can allow this ranking model to fill holes in the usage data, and provide a more accurate or comprehensive picture. Thus, although this method of ranking does not necessarily match the actual traffic, it nevertheless measures the degree of exposure a document has throughout the web.

Another application and embodiment of the present invention is directed to enhancing the quality of results from web search engines. In this application of the present invention, a ranking method according to the invention is integrated into a web search engine to produce results far superior to existing methods in quality and performance. A search engine employing a ranking method of the present invention provides automation while producing results comparable to a human maintained categorized system. In this approach, a web crawler explores the web and creates an index of the web content, as well as a directed graph of nodes corresponding to the structure of hyperlinks. The nodes of the graph (i.e., pages of the web) are then ranked according to importance as described above in connection with various exemplary embodiments of the present invention.

The search engine is used to locate documents that match the specified search criteria, either by searching full text, or by searching titles only. In addition, the search can include the anchor text associated with backlinks to the page. This approach has several advantages in this context. First, anchors often provide more accurate descriptions of web pages than the pages themselves. Second, anchors may exist for images, programs, and other objects that cannot be indexed by a text-based search engine. This also makes it possible to return web pages which have not actually been crawled. In addition, the engine can compare the search terms with a list of its backlink document titles. Thus, even though the text of the document itself may not match the search terms, if the document is cited by documents whose titles or backlink anchor text match the search terms, the document will be considered a match. In addition to or instead of the anchor text, the text in the immediate vicinity of the backlink anchor text can also be compared to the search terms in order to improve the search.

Once a set of documents is identified that match the search terms, the list of documents is then sorted with high ranking documents first and low ranking documents last. The ranking in this case is a function which combines all of the above factors such as the objective ranking and textual matching. If desired, the results can be grouped by category or site as well.

It will be clear to one skilled in the art that the above embodiments may be altered in many ways without departing from the scope of the invention. Accordingly, the scope of the invention should be determined by the following claims and their legal equivalents. 

What is claimed is:
 1. A method performed by a computer, the method comprising: receiving, by the computer, a search term from a user; performing, by the computer, a search to identify a set of first documents based on the search term; generating, by the computer, a first score for each first document in the set of the first documents based on a matching of the search term to a content of the first documents; identifying, by the computer, second documents that include links to the first documents in the set of first documents; determining, by the computer, a score for each of the second documents; determining, by the computer, a second score for each of the first documents in the set of first documents based on the scores of the second documents that include links to the first document; generating, by the computer, a final score for each of the first documents in the set of first documents based on the first score and the second score; sorting, by the computer, the first documents in the set of first documents based on the final scores to form a ranked set of search results; and providing, by the computer, the ranked set of search results to the user.
 2. The method of claim 1, where the scores for the second documents are determined independent from the search term.
 3. The method of claim 1, where for one of the second documents that includes a link to one of the first documents, the method further comprises: identifying a first location at which the one of the first documents is stored; identifying a second location at which the one of the second documents is stored; and assigning a weight to the link from the one of the second documents to the one of the first documents based on whether the first location differs from the second location, where the second score for the one of the first documents is generated based on the weight assigned to the link.
 4. The method of claim 3, where identifying the first location includes: identifying a first server on which the one of the first documents is stored; and where identifying the second location includes: identifying a second server on which the one of the second documents is stored.
 5. The method of claim 3, where identifying the first location includes: identifying a first domain in which the one of the first documents is located; and where identifying the second location includes: identifying a second domain in which the one of the second documents is located.
 6. The method of claim 1, where determining the second score for each of the first documents includes: assigning weights to the links included in the second documents, and generating the second score for one of the first documents based on: the score of one or more of the second documents, and the weights assigned to the links, included in the one or more of the second documents, that point to the one of the first documents.
 7. The method of claim 6, where assigning the weights to the links includes: identifying a first server on which the first document is served, identifying a second server on which the second documents is stored, and assigning different weights to the links, included in the second documents, when the first server differs from the second server than when the first server is the same as the second server.
 8. The method of claim 6, where assigning the weights to the links includes: identifying a first domain with which the first document is associated, identifying a second domain with which the second documents is associated, and assigning different weights to the links, included in the second documents, when the first domain differs from the second domain than when the first domain is the same as the second domain.
 9. The method of claim 1, where determining the second score for each of the first documents includes: determining information regarding bookmarks associated with the user, and generating the second score, for one of the first documents, based on: the information regarding the bookmarks, and the score of one or more of the second documents that includes a link to the one of the first documents.
 10. The method of claim 1, further comprising: crawling a network to locate the first documents and the second documents; and creating a directed graph of the first and second documents, the directed graph identifying the links from the second documents to the first documents.
 11. The method of claim 1, where performing the search includes: identifying documents based on the search term, determining whether text of links, in the identified documents, match the search term, each of the links identifying a respective document, and generating search results, as the set of first documents, that include the documents and one or more of the respective documents identified by the text of the links that match the search term.
 12. The method of claim 11, where the text of one of the links includes anchor text associated with the one of the links.
 13. The method of claim 11, where the text of one of the links includes: anchor text associated with the one of the links, and text located adjacent the anchor text in one of the identified documents.
 14. A computer-readable medium that stores instructions executable by a computer, the computer-readable medium comprising: one or more instructions to obtain a search term; one or more instructions to perform a search to identify a set of first documents based on the search term; one or more instructions to calculate a first score for each first document in the set of the first documents based on a matching of the search term to a content of the first documents; one or more instructions to identify second documents that include links to the first documents in the set of first documents; one or more instructions to determine a score for each of the second documents; one or more instructions to determine a second score for each of the first documents in the set of first documents based on the scores of the second documents that contain include links to the first document; one or more instructions to generate a ranking score for each of the first documents in the set of first documents based on the first score and the second score; one or more instructions to sort the first documents in the set of first documents based on the ranking scores to form a ranked set of search results; and one or more instructions to output the ranked set of search results.
 15. The computer-readable medium of claim 14, where the scores for the second documents are determined independent from the search term.
 16. The computer-readable medium of claim 14, where for one of the second documents that includes a link to one of the first documents, the computer-readable medium further comprises: one or more instructions to identify a first location at which the one of the first documents is located; one or more instructions to identify a second location at which the one of the second documents is located; and one or more instructions to assign a weight to the link from the one of the second documents to the one of the first documents based on whether the first location differs from the second location, where the second score for the one of the first documents is generated based on the weight assigned to the link.
 17. The computer-readable medium of claim 16, where the one or more instructions to identify the first location include: one or more instructions to identify a first server on which the one of the first documents is stored; and where the one or more instructions to identify the second location includes: one or more instructions to identify a second server on which the one of the second documents is stored.
 18. The computer-readable medium of claim 16, where the one or more instructions to identify the first location include: one or more instructions to identify a first domain in which the one of the first documents is located; and where the one or more instructions to identify the second location includes: one or more instructions to identify a second domain in which the one of the second documents is located.
 19. The computer-readable medium of claim 14, where the one or more instructions to determine the second score for each of the first documents includes: one or more instructions to determine information regarding bookmarks associated with the user, and one or more instructions to generate the second score, for one of the first documents, based on: the information regarding the bookmarks, and the score of one or more of the second documents that includes a link to the one of the first documents.
 20. The computer-readable medium of claim 14, further comprising: one or more instructions to crawl a network to locate the first documents and the second documents; and one or more instructions to create a directed graph of the first and second documents, the directed graph identifying the links from the second documents to the first documents.
 21. The computer-readable medium of claim 14, where the one or more instructions to perform the search includes: one or more instructions to identify documents based on the search term, one or more instructions to determine whether text of links, in the identified documents, match the search term, each of the links identifying a respective document, and one or more instructions to generate search results, as the set of first documents, that include the documents and one or more of the respective documents identified by the text of the links that match the search term.
 22. The computer-readable medium of claim 21, where the text of one of the links includes anchor text associated with the one of the links.
 23. The computer-readable medium of claim 21, where the text of one of the links includes: anchor text associated with the one of the links, and text located adjacent the anchor text in one of the identified documents.
 24. The computer-readable medium of claim 14, where the one or more instructions to determine the second score for each of the first documents includes: one or more instructions to assign weights to the links included in the second documents, and one or more instructions to generate the second score for one of the first documents based on: the score of one or more of the second documents, and the weights assigned to the links, included in the one or more of the second documents, that point to the one of the first documents.
 25. The computer-readable medium of claim 24, where the one or more instructions to assign the weights to the links includes: one or more instructions to identify a first server on which the first document is served, one or more instructions to identify a second server on which the second documents is stored, and one or more instructions to assign different weights to the links, included in the second documents, when the first server differs from the second server than when the first server is the same as the second server.
 26. The computer-readable medium of claim 24, where the one or more instructions to assign the weights to the links includes: one or more instructions to identify a first domain with which the first document is associated, one or more instructions to identify a second domain with which the second documents is associated, and one or more instructions to assign different weights to the links, included in the second documents, when the first domain differs from the second domain than when the first domain is the same as the second domain. 